iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
自我挑戰組

自我挑戰Ruby系列 第 21

Day 21 - 方法1

  • 分享至 

  • xImage
  •  

如何定義方法

藉由def…end來定義方法,

def method_name(param1, param 2)
end

例如:

def fix(something)

    puts "fixing #{something}"

end

我們藉由def定義一個叫fix的方法,其中參數為something,

當然參數不限只有一個,也可以以一個以上,

當有一個以上的參數就會藉由逗號來將參數做分隔。

如何叫出方法

直接將方法名字寫出來就可以叫出方法,例如:

fix("chair")

就可以印出 fixing chair。

出了直接用名字叫出方法之外,因為當建立方法時,

會產生一個:fix的符號,我們也可以藉由send包住符號,

將方法叫出,例如上述的例子,我們可以寫成:

send(:fix,"desk")

用send將符號呼叫出,第二個位置是給fix方法裡面參數,在這邊給了desk這個引數。

預設值

其實在定義方法的時候,我們可以幫參數加上原本的預設值,即便沒輸入引數,也可以使用預設值。

def discuss(someone = "everyone")
    puts "Have to discuss with #{someone}"
end

當寫出discuss("Arance")時,會印出Have to discuss with Arance,

而當寫discuss時,會印出Have to discuss with everyone。

回傳值

我們經常使用puts將我們所要的東西印出來,

但有時候我們不一定要馬上印出來,可以藉由回傳值接收到執行後的結果,

等之後我們想印出來的時候再印出來,例如:

我們定義一個方法,想要得到任何數三倍的值

def triple(num)
   return num * 3
end

我們讓它回傳結果,不一定要印出來。

可以再藉由puts triple(5),就可以印出15。

因為如果我們直接在方法裡面印出東西來,其實藉由puts本身是沒有回傳值的。

Day 21 結語

今天學到Ruby中如何藉由定義方法來自己產生方法,也學習到如何使用這些方法,

藉由預設值來了解,當我們不給引數時,可以藉由預設值讓預設的東西保留下來,

也區分puts其實不會幫我們保留回傳的東西,

只是將東西列印出來,要必須藉由return才可以保留回傳的東西。


上一篇
Day 20 - 符號
下一篇
Day 22 - 方法2
系列文
自我挑戰Ruby30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言